package com.modules.controller.sys;

import com.common.vo.Result;
import com.wf.captcha.ArithmeticCaptcha;
import com.wf.captcha.ChineseGifCaptcha;
import com.wf.captcha.GifCaptcha;
import com.wf.captcha.SpecCaptcha;
import com.wf.captcha.utils.CaptchaUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 验证码获取
 * @author yyq
 */
@CrossOrigin(origins = "*",maxAge = 3600)// 前端请求发生跨域错误，加入这段处理
@Controller
public class CaptchaController {

    private static final String SESSION_KEY = "captcha";

    @RequestMapping("captcha/code")
    public void code(HttpServletRequest request, HttpServletResponse response) throws Exception {

        // 返回随机数验证码
        // CaptchaUtil.out(request, response);

        // 数字加减乘除
        /*ArithmeticCaptcha captcha = new ArithmeticCaptcha(120, 40);// 可自定义宽高（不设置宽高，则按img标签的大小适应）
        captcha.setLen(2);// 两位运算*/


        // 动态中文验证码
        /*ChineseGifCaptcha captcha = new ChineseGifCaptcha();
        captcha.setLen(2);// 两位运算*/


        //英文与数字动态验证码
        //GifCaptcha captcha = new GifCaptcha();

        // 英文与数字验证码
        SpecCaptcha captcha = new SpecCaptcha();

        captcha.setLen(4);// 验证字符数

        // 结果
        String result = captcha.text();
        //System.out.println(result);

        // 这里可以单独获取base64格式的验证码
        //captcha.toBase64();

        // 将结果存储到session中（由于有些验证码没存储结果，则需要自己存储）
        request.getSession().setAttribute(SESSION_KEY, result.toLowerCase());

        // 响应到前端
        captcha.out(response.getOutputStream());


        /**
         * 【说明】
         *
         * 不设置宽度，则按img的宽度来自适应
         *
         * 其中我们可以设置自定义样式 captcha.set****();
         * 有font、type、width、height等
         *
         */



    }



}